#※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
# File Name: bashloader.sh
# Author: GID5564
# Description: 在.bashrc中加载
# Created Time: 09/03/23-18:25:31
#※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
#! /usr/bin/bash

# 避免重复导入
[[ -n $__XLIB_IMPORTED__BASH ]] && return 0
__XLIB_IMPORTED__BASH=1

export BIN_BOOT=${BASH_SOURCE[0]:-$0}
function __nvironment_init__(){
    #更新
    sudo apt update && sudo apt upgrade -y
    
    #加载库函数
    local script_dir=$(cd "$(dirname "${BIN_BOOT}")" &>/dev/null && pwd -P)
    export XSHELL_PATH="${script_dir%/*}"
    source ${XSHELL_PATH}/xlib/core.sh
    __load_lib__
    
    
    #配置文件，没有则创建
    [[ ! -s ${FILE_CONFIG} ]] && {
        #初始配置
        [[ ! -d ${CONFIG_PATH} ]] && mkdir ${CONFIG_PATH}
        set_config
    }

    #读取次数并更新
    __run_count__
    #展开系统信息
    show_system_information
    #短命令提示
    _show_command_menu_ "command"
    
}


#导入文件
function __load_lib__(){
    #在Bash中加载
    #库函数
    import message
    #import log
    import base
    import var
    import ini
    #import config
    import string
    import git
    import system
    import cmd
    import mail
    import xmenu
    
    #功能函数
    import var
    import dynamic
    import invoke
    import "funcs/install_package"
    import "funcs/install_python"
    import "funcs/problem_handling"
    import "funcs/send_mail"
    import "funcs/local_settings"
    import "funcs/open_website"
    import "funcs/install_jupyter"
    
    import call_entry
    import menu
    import virtualenv
    import cmd_show

    wait
}

function __run_count__(){
        #读取运行次数    
    local cnt=$(read_ini ${FILE_CONFIG} "boot" "count")
        #计数
    let cnt++
    hr "@" 45
    msg "${BLUE}脚本运行次数: ${RESET}${RED}${cnt}${RESET}"
    hr "@" 45
    write_ini ${FILE_CONFIG} "boot" "count" ${cnt}
    unset cnt
}

function ReBoot(){
    warn "${PURPLE}正在准备重启aidlux,按${RESET}${RED}回车键${RESET}${PURPLE}继续…${RESET}"
    read
    aid-reboot #aidlux命令
}

function set_config(){
    cat >>${FILE_CONFIG} <<-'EOF'
########################################
#【脚本说明】
# 1、此脚本适用操作.ini配置文件内容；
# 2、可以读取或更新指定section指定key的value；
# 3、"="号两边都有空格;
# 4、读写函数:
#        导入函数: import ini
#        读取:  value=$(read_ini <file> <section> <key>)
#        写入:  write_ini <file> <section> <key> <value>
########################################

[boot]
#引导配置
count = 1
BASH = false
ZSH = false

[env-enable] 
#虚拟环境
installed = false

[git]
item = aidtool
path = /root/.aidboot
repo = https://gitee.com
author = gid5564

[link]
音乐搜索 = https://www.hifini.com/
Debian参考手册 = https://www.debian.org/doc/manuals/debian-reference/index.zh-cn.html

[x-window]
#########################################
# Xvfb（X Virtual Frame Buffer）是基于X Window的虚拟服务器，可以在没有物理显卡图形界面和人机交互界面的情况下，运行X Window相关应用程序。它模拟了一个完整的X Window系统，包括显示和输入设备，但一切都是在内存中进行处理，没有显示器和键盘。这使得测试和调试GUI应用程序变得更加容易和自动化。
# 安装Xvfb命令: sudo apt install xvfb
# Xvfb启动命令: Xvfb :1 -screen 0 1024x768x24
#   其中，:1 表示指定显示器编号为 1-screen 0 表示指定的屏幕编号为 0
#   1024x768x24 表示指定显示器的分辨率为 1024x768，颜色深度为 24 位
# 设置环境变量：export DISPLAY=:1，可以 echo 'export DISPLAY=:1' >> ~/.bashrc source ~/.bashrc

# x11vnc是专为X11环境设计的vnc， 安装sudo apt install x11vnc，运行x11vnc -display :1 ，然后在vnc客户端输入你的服务器IP就可以连接了，默认是5900端口。
#########################################
x-server = xvfb
vnc = x11vnc

[apt]
#########################################
#这些工具和库的安装和使用方法都可以通过使用apt|aptitude命令来完成。
#########################################
#依赖
others = libatlas3-base,libatlas-base-dev,libopenblas-dev,libopenblas-base,libblas-dev,liblapack-dev,openmpi-bin,libopenmpi-dev,libatlas-base-dev,python3-dev,,openjdk-11-jre-headless,nodejs,python3-dev,libpopt0, libhdf5-dev

#系统
tool = htop,neofetch,tree,proot,hdparm,shellcheck,fzf,autojump,bash-completion,ufw

#编译
compi = make,cmake,gcc,g++,gdb,clang,build-essential,autoconf,libfontconfig1-dev,pkg-config,libjpeg-dev,libopenjpeg-dev,gnome-common,libglib2.0-dev,gtk-doc-tools,libyelp-dev,yelp-tools,gobject-introspection,libsecret-1-dev,libnautilus-extension-dev

#常用
base = gawk,git,wget,curl,tar,sudo,pv,eatmydata,unzip,unrar,vim,zsh,adb,rpm,npm,apt-utils,apt-transport-https,tldr


#内置
built-in = basename,cat,column,echo,git,grep,head,printf,seq,sort,tput,tr,uniq,wc

[pip]
#########################################
#请注意，为了确保您的Python环境的稳定性和安全性，请仔细查看库的版本信息，并使用虚拟环境管理工具（例如venv或conda）来隔离不同项目之间的依赖关系。
#这些工具和库的安装和使用方法都可以通过使用pip命令来完成。
#########################################
##♥使用Python进行机器学习，你通常需要安装以下几个库和工具：
#   1. NumPy: 提供了一种方便的方式来表示和处理大型多维数组和矩阵，是Python数据科学生态系统的重要组成部分。
#   2. SciPy: 提供了许多优化、线性代数、统计和其他函数，非常适合科学计算和数据分析。
#   3. Pandas: 提供了一个灵活的数据结构DataFrame来处理表格数据和时间序列数据，以及各种数据操作和分析功能。
#   4. Scikit-learn: 是一个流行的机器学习库，提供了许多常见的机器学习算法和工具，如分类、回归、聚类、降维、数据预处理等。
#   5. TensorFlow或PyTorch: 是目前最流行的深度学习框架之一，提供了许多功能和工具，如神经网络、优化器、数据管道、CPU/GPU加速等，可以用于创建深度学习模型
#   6. Jupyter Notebook: 是一种交互式笔记本，可以将代码、文本、公式、图表等内容组合在一起，方便地进行数据分析和演示。
Machinelearning = numpy,pandas,scipy,Matplotlib,seaborn,statsmodels,scikit-learn,graphviz,orange3,PyBrain,MILK,pyTorch,torchvision,deoldify


##♥使用Python进行深度学习通常需要以下库：
#   1. TensorFlow：是一个流行的开源机器学习框架，可以支持多种深度学习模型。
#   2. Keras：是一个高层次的神经网络API，它可以运行在TensorFlow、Theano和CNTK等低级别的框架之上。
#   3. PyTorch：是一个由Facebook开发的开源机器学习框架，可以支持动态图和静态图。
#   4. Theano：是一个Python库，用于定义、优化和评估数学表达式，特别是那些涉及多维数组的表达式。
#   5. NumPy：是Python中的一个数学库，它提供了大量的数学函数和数组操作，可以用于处理大规模的数据集。
#   6. Pandas：是一个Python库，用于数据分析和数据操作，它提供了数据结构、数据输入/输出和数据可视化等功能。
#   7. Matplotlib：是一个Python库，用于绘制数据可视化图形，包括折线图、直方图、散点图等。
##在使用这些库之前，您需要确保已经正确安装了Python和相应的依赖项。
DeepLearning = TensorFlow,PyTorch,torchvision,Theano,Keras,Caffe2,MXNet,PaddlePaddle,CNTK,sklearn-theano,onnxruntime,onnx


##♥进行图像处理通常需要使用以下Python库：
#   1. Pillow/PIL：Python Imaging Library可以处理各种图像格式，包括PNG，JPEG，BMP和GIF等等。
#   2. OpenCV：OpenCV是一个流行的计算机视觉库，它提供了许多常用的图像处理和计算机视觉算法，例如特征检测、图像分割、对象识别等。
#   3. NumPy：NumPy是用Python进行数值计算的基本库，它提供了支持数组和矩阵操作的数据结构，可以方便地进行图像数据的处理和计算。
#   4. Matplotlib：Matplotlib是一个绘图库，用于可视化数据，包括图像。它可以生成各种类型的图表，如直方图、折线图和散点图等。
#   5. Scikit-image：Scikit-image是一个基于SciPy的图像处理库，提供了各种图像处理算法，如滤波、分割、形态学操作和特征检测等。
#   6. Pygame：Pygame是一个用于游戏开发的库，但也可以用于图像处理，它提供了窗口、音频、输入等多个模块，对于处理实时的视频流和图像等有一定帮助。
##以上是使用Python进行图像处理时，常用的一些库。
ImageProcessing = numpy,pillow,pandas,OpenCV-python,scikit-image,Mahotas,Ilastik,exifread


##♥进行文本处理，您通常需要安装以下几个库和工具：
#   1. Regular Expression: Python中自带正则表达式（re）模块，可以用于处理文本中的模式匹配和替换。
#   2. NLTK: 是一个广泛使用的Python自然语言处理库，提供了许多工具和算法来处理文本数据，如分词、词性标注、实体识别、句法分析、语义分析等。
#   3. BeautifulSoup4: 是一个Python库，用于解析和提取HTML和XML文件中的数据，特别是在网页爬取和数据抽取方面非常有用。
#   4. spaCy: 另一个常用的自然语言处理库，提供了许多高效的工具和算法，可用于分词、词性标注、句法分析、命名实体识别等任务。
#   5. TextBlob: 是一个Python库，提供了一种简单易用的方式来进行文本处理，包括分词、情感分析、短语提取等功能。
#   6. Gensim: 是一个用于主题建模和文本相似性计算的Python库，可以处理大规模文本数据，包括预处理、向量化和模型训练等步骤。
##以上这些库和工具的安装和使用方法都可以通过使用pip命令来完成。
TextProcessing = NLTK,spacy,scikit-learn,numpy,pyyaml


##♥进行数据查看，您通常需要安装以下几个库和工具：
#   1. Pandas：提供了一个灵活的数据结构DataFrame来处理表格数据和时间序列数据，以及各种数据操作和分析功能，是Python数据科学生态系统的重要组成部分。
#   2. NumPy：提供了一种方便的方式来表示和处理大型多维数组和矩阵，可用于处理数字数据，如图像、声音和文本数据等。
#   3. Matplotlib：是一个用于绘制二维图形的Python库，提供了各种图形类型和样式，可用于绘制折线图、散点图、直方图等
#   4. Seaborn：是一个基于Matplotlib的Python可视化库，提供了许多更高级的图形类型和样式，如热力图、分类散点图、线性回归图等。
#   5. Plotly：是一个交互式可视化库，可以创建交互式图表和仪表盘，支持各种语言和平台。
#   6. Jupyter Notebook：是一种交互式笔记本，可以将代码、文本、公式、图表等内容组合在一起，方便地进行数据分析和演示。
##以上这些库和工具的安装和使用方法都可以通过使用pip命令来完成。
Dataviewing = scikit-learn,Matplotlib,Seaborn,Orange3,Plotly,SymPy,patsy


##♥进行音频处理，你通常需要安装以下几个库和工具：
#   1. NumPy: 提供了一种方便的方式来表示和处理大型多维数组和矩阵，是Python数据科学生态系统的重要组成部分。
#   2. SciPy: 提供了许多优化、线性代数、统计和其他函数，非常适合科学计算和数据分析。
#   3. PyAudio: 是一个Python库，提供了一种简单易用的方式来进行音频输入和输出，包括录音、播放、音频剪辑等功能。
#   4. librosa: 是一个专门用于音频分析和处理的Python库，提供了许多工具和算法，如频谱分析、MFCC特征提取、时频分析等。
#   5. wave: 是Python标准库中用于操作WAV文件的模块，可以方便地读取和写入音频文件。
#   6. ffmpeg: 是一个开源的音视频处理工具，可以用来转换格式、剪辑、滤镜等操作，可以与Python集成使用。
##以上这些库和工具的安装和使用方法都可以通过使用pip命令来完成。另外，还可以使用Jupyter Notebook来进行交互性的音频处理和演示
AudioProcessing = msgpack, zipp, urllib3, typing-extensions, threadpoolctl, pycparser, packaging, numpy, llvmlite, lazy-loader, joblib, idna, decorator, charset-normalizer, certifi, audioread, soxr, scipy, requests, platformdirs, importlib-metadata, cffi, soundfile, scikit-learn, pooch, numba, LibROSA


##♥进行科学计算，您需要安装以下库：
#   1. NumPy: 用于高效地进行数值计算、线性代数以及矩阵计算等。
#   2. SciPy：用于解决科学计算中的不同问题，例如最优化、信号处理、统计学和积分等。
#   3. Matplotlib: 用于绘制各种类型的图形，包括折线图、散点图、条形图、饼图以及等高线图等。
#   4. Pandas: 用于数据处理和数据分析，例如数据读取、数据清洗、数据转换和数据可视化等。
#   5. Scikit-learn: 用于机器学习和数据挖掘领域，例如分类、聚类、回归和降维等。
#   6. TensorFlow 或 PyTorch：用于深度学习和神经网络领域，例如图像识别、自然语言处理和语音识别等。
##以上这些库和工具的安装和使用方法都可以通过使用pip命令来完成。
ScientificComputing = numpy,pillow,pandas,scipy,scikit-learn


##♥在办公自动化中需要以下工具和库：
#   1. Pandas库：Pandas是Python的数据处理库，它可以导入、处理和分析各种格式的数据。它提供了DataFrame和Series等数据结构，可以轻松地处理和分析数据。
#   2. Matplotlib库：Matplotlib是一个Python的数据可视化库，可以绘制各种类型的图表，如折线图、散点图、条形图等。
#   3. Numpy库：Numpy是Python的科学计算库，可以进行多维数组的处理和计算。
#   4. Openpyxl库：Openpyxl是一个用于读写Excel文件的Python库，它可以读写Excel文件的数据、格式和公式等。
#   5. Python-docx库：Python-docx是一个用于读写Microsoft Word文档的Python库。它可以读取和修改文本、样式、图片、表格等。
##使用这些库和工具，您可以开发各种自动化脚本，例如读取文件数据并将其转换为其他格式、自动生成报表、批处理数据等。
OfficeAutomation = pandas,python-docx,openpyxl,PyPDF2,pdfplumber,ReportLab,PyMuPDF,python-office,xlwings,pptx,smtplib,imaplib,email,linecache



##♥要使用Python进行网络爬虫，您通常需要使用以下Python库：
#   1. Requests：用于向URL发出HTTP请求，以获取HTML或其他类型的响应。此库可用于获取HTML内容，可以对响应进行JSON解码。
#   2. BeautifulSoup4：用于解析HTML和XML文档，可以帮助您从Web页面中提取所需的数据。它可以让您遍历文档树，以查找和处理HTML标签和属性。
#   3. Scrapy：用于快速创建和部署Web爬虫。它提供了一个强大的框架，可用于抓取和提取Web页面上的内容，支持多个网站。
#   4. Selenium：用于模拟浏览器行为，支持各种浏览器。它允许您直接在浏览器中运行JavaScript，并使Web爬取任务更具针对性和可定制性。
#   5. Pandas：一个用于数据分析的Python库，可用于处理、清理和分析从Web页面抓取的数据。
##请注意，这只是一些常用的Python库。根据您的具体需求，您可能需要使用其他库来完成您的网络爬取任务。
WebCrawler = requests,lxml,urllib,xpath,BeautifulSoup4,pyquery,Selenium,Scrapy,Scapy,tesseract,tesserocr


##♥数据库
Database = pymysql,psycopg2,pymssql,cxoracle,PyMongo
##♥键盘鼠标
KeyboardMouse = pyautogui
##♥压缩文件
CompressedFile = zipfile,zlib,tarfile


[item]
# Python项目软件及依赖包
# value格式:
#    [apt包,…]@[pip包,…]/[项目标题]

OCR-PDF = poppler-utils,libpoppler-cpp-dev,poppler-data@numpy,pandas,OpenCV-python,PyPDF2,tabula-py,pdf2image,PyTesseract,layoutparser,torchvision ,Tesseract,python-poppler,Matplotlib/OCR进行PDF文档解析

TRAN-PDF =  @PyPDF2,Googletrans/翻译PDF文档(英→中)

EOF
}
























__nvironment_init__













